/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.ucuenca.paginaasos.uimanager;

import edu.ucuenca.paginaasos.controller.GenericController;
import edu.ucuenca.paginaasos.entity.Foro;
import edu.ucuenca.paginaasos.entity.Usuario;
import edu.ucuenca.paginaasos.uimanager.util.JsfUtil;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.Date;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.imageio.ImageIO;
import javax.servlet.ServletContext;
import org.apache.commons.lang3.RandomStringUtils;
import org.primefaces.event.FileUploadEvent;

/**
 *
 * @author Johnny
 */
@ManagedBean(name = "gestorNuevaNoticias")
@ViewScoped
public class GestorNuevaNoticia implements Serializable {

    /**
     * Creates a new instance of GestorNuevaNoticia
     */
    private Foro foro;
    private String titulo;
    private int privacidad;
    private String descripcion;
    private String ext;
    private int tipo;
    private GenericController<Foro> controladorForo;
    private String imagen;
    private Usuario usuario;

    private GenericController<Foro> getControladorForo() {
        if (controladorForo == null) {
            controladorForo = new GenericController<Foro>();
        }
        return controladorForo;
    }

    public GestorNuevaNoticia() {
    }

    public Foro getForo() {
        return foro;
    }

    public void setForo(Foro foro) {
        this.foro = foro;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public int getPrivacidad() {
        return privacidad;
    }

    public void setPrivacidad(int privacidad) {
        this.privacidad = privacidad;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }


    public int getTipo() {
        return tipo;
    }

    public void setTipo(int tipo) {
        this.tipo = tipo;
    }

    public String guardarNoticia() {
        foro = new Foro();
        foro.setNombre(titulo);
        foro.setDescripcion(descripcion);
        Date d = new Date();
        foro.setFecha(d);
        foro.setTipo(tipo);
        String nombre = d.getYear() + "" + d.getMonth() + "" + d.getDay() + d.getHours() + d.getMinutes() + d.getTime();
        foro.setPrivacidad(privacidad);
        foro.setEscuela(getUsuario().getPersona().getEscuela());
        foro.setImagen(imagen);
        getControladorForo().create(foro);
        JsfUtil.addSuccessMessage("Noticia Publicada correctamente");
        return "FrmNoticias";
    }

    public Usuario getUsuario() {
        if (usuario == null) {
            usuario = GestorUsuario.getInstance().getUsuarioActual();
        }
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
        this.usuario = usuario;
    }

    public String getImagen() {
        return imagen;
    }

    public void setImagen(String imagen) {
        this.imagen = imagen;
    }
    

}
